/********************************************************************/
/*************************** 系统默认配置 ****************************/
/********************************************************************/

import customConfig from "@/custom/config";
import { CommonObj } from "@/types";

const { popup, date, element, paths, system, performance } = customConfig;

export const enableTpl = performance?.enableTpl ?? true; // 是否启用模板
export const enableOptimize = performance?.enableOptimize ?? false; // 是否开启优化。若为true，则会避免计算较复杂的逻辑，同时也会少一些良好的开发体验

export const defaultNoAuthPaths = paths?.noAuth ?? ["/login"]; // 不需要授权就能登录的页面
export const defaultHomePath = paths?.home ?? "/"; // 首页路径

export const defaultCommonSize = system?.size ?? "default"; // 控件大小
export const defaultEmptyStr = system?.emptyStr ?? "-"; // 空位占位符
export const defaultThemeName = system?.theme?.name ?? "orange";
export const defaultLayouType = system?.layout?.type ?? "columns";
export const defaultLanguage = system?.language ?? "zh";
export const defaultRangeJoinChar = system?.rangeJoinChar ?? "~"; //日期、数字范围区间的连接符号

export const defaultLoginValidTime = date?.valid?.login ?? 24 * 60 * 60 * 1000; // 登录有效期时长
export const defaultDictValidTime = date?.valid?.dict ?? 24 * 60 * 60 * 1000; // 字典有效期时长
export const defaultTableColDateFormat =
  date?.format?.tableCol ?? "YYYY-MM-DD HH:mm:ss"; // 表格列的日期格式

export const defaultPopupType = popup?.defaultType ?? "dialog"; // 弹窗类型

// export const defaultGroupBtnsMaxNum = config.OperateBtns?.max ?? 3; // 操作按钮最多显示几个按钮（若超出，则会以更多下拉形式呈现按钮）

export const defaultFormItemType = "input";

export type RouteType = "static" | "auto" | "dynamic";
export const defaultRouteType: RouteType = "auto";

// 默认图标
// export const defaultIconName = config.BaseIcon?.name ?? "ElemeFilled";

// BaseCrud 的请求参数，响应数据的键值对映射
// export const defaultReqResMap: ReqResMap = Object.assign(
//   {
//     curr_page: "curr_page",
//     page_size: "page_size",
//     total_num: "total_num",
//     has_more: "has_more",
//     records: "records",
//   },
//   config.BaseCrud?.Index?.reqResMap
// );

// el-tooltip的属性
export const defaultTooltipAttrs = Object.assign(
  { showAfter: 500 },
  element?.tooltip
);

// el-popover的属性
export const defaultPopoverAttrs: CommonObj = Object.assign(
  {
    // placement: "top",
    // title: "Title",
    // width: 300,
    // trigger: "hover",
    // content: "自定义提示内容",
    width: "fit-content",
    showAfter: 500,
  },
  element?.popover
);

export const defaultDialogAttrs = Object.assign(
  {
    width: "fit-content",
    style: "max-width: 94vw;min-width:200px;overflow:hidden;",
    closeOnClickModal: false,
    appendToBody: true,
    destroyOnClose: true, // 当关闭 Dialog 时，销毁其中的元素
    draggable: true,
  },
  element?.dialog
);

export const defaultDrawerAttrs = Object.assign(
  {
    size: "none",
    style: "max-width: 94vw;min-width:200px;",
    closeOnClickModal: false,
    appendToBody: true,
    destroyOnClose: true, // 是否在关闭 Drawer 之后将子元素全部销毁
  },
  element?.drawer
);
